expname.library

A system shared library that decodes product and manufacturer ID Version 2.2, Release 19 April 1996

Richard Körber

Copyright \begin{matrix}c \\ ◯ \end{matrix} 1995-96 by Richard Körber Please read the Copyright chapter first!

1 Introduction

This system shared library is able to decode the manufacturer ID and product ID of expansion boards. If the name of this board is known, it is returned as string; otherwise you will receive a string containing the decimal value of the ID, introduced by a ‘#’.

Though there are already a lot of names known, I still rely on your help. Please send the manufacturer name and id and the product name and id of as much boards as possible! :-)

By the way: I have the feeling, some of you think that ListExp is the main part of this archive. This was not my intention! ListExp is only a small demonstration tool. The main part of the archive is the expname.library itself. You can use it in your own programs to decode as much board IDs as possible. Of course you can keep on using ListExp only if you like! :-)

2 Copyright

NOTE Hereby, i forbid Torsten Bach to further use my documentation and include files of this and all previous versions!

COPYRIGHT This software is copyrighted by Richard Körber. That means that you are NOT AL-LOWED to modify the program and documentation in any way. Especially you MUST NOT REMOVE the documentation, include files or this text file. You are NOT allowed to use this software or any part of it for any other purpose than that one mentioned in its documentation, this also includes any fonts, images or samples. You are NOT allowed to decompile any part of the packet.

FREEWARE This packet is FREEWARE. You are allowed to use it without any registration fee. Note that you only have the right to use this software, but no rights on the software itself.

DISTRIBUTION This package is freely distributable. That means you are allowed to redistribute this package as long as you follow these points:

• Any re-distribution has to include all files in this archive, without any modifications. You are NOT allowed to add any files to the archive. Exception: if you use the expname.library only, you do not need to distribute all related files if you write a short note into your program’s documentation.

• This package may be freely distributed via BBSs, InterNet/UseNet, software libraries such as Fred Fish’s and Aminet CD-ROM, and other similar electronic channels.

• Disk magazines and services that charge extra for file transfers may NOT distribute it without written permission by the developer!

• You are allowed to use the expname.library even in a commercial product without any written permission of me. Please note in your program’s documentation that you’re using expname.library by Richard Körber.

DISCLAIMER By using this product, you accept the FULL responsibility for any damage or loss that might occur through its use or the inability to use it. The developer of the software can NOT be held responsible.

CONTENTS OF THE PACKAGE The ExpName package is only complete if these files are present:

ExpName/expname.doc
ExpName/ExpName-D.dvi
ExpName/ExpName-D.guide
ExpName/ExpName-E.dvi
ExpName/ExpName-E.guide
ExpName/ListExp
ExpName/include/expname_lib.i
ExpName/include/fd/expname_lib.fd
ExpName/include/inline/expname.h
ExpName/include/libraries/expname.h
ExpName/include/libraries/expname.i
ExpName/include/pragmas/expname_pragmas.h
ExpName/include/proto/expname_protos.h
ExpName/libs/boards.library
ExpName/libs/expname.library
ExpName.info
FILE_ID.DIZ

TRADEMARKS The copyright and trademarks of all manufacturers and products mentioned are held by their owners.

If you do not agree with these copyright notes, you have to delete the ExpName packet and all related files immediately!

3 My Address

E-MAIL Please send bug-reports, board descriptions, missing graphic OS, keyfiles, flames and

so on to one of the following e-mail addresses:

       rkoerber@tfh.dssd.sub.org
       shred@eratosth.dssd.sub.org

a2h4ko@bg.bib.de (until September 1996 only)

You can also visit my home page (until September 1996 only):

http://www.bg.bib.de/~a2h4ko

SNAIL MAIL

You can send me a snail mail letter, too. My address is:

         Richard Körber
         Hornstraße 20
         51465 Bergisch Gladbach
         Germany

Please enclose a "1 DM" stamp if you live in Germany and want to get a reply.

SUPPORT MAILBOX You can get the latest releases from my support bbs:

_____
_______________/    /                      (TM)
\_________/_____________________________/    /    _______________________
|    _/   /   /_/   /  _____/___/_____/    /    /___/_____/   _____/
|        /___/  __/__/   /     /   /    /____/   /     /   /   __/__
:    |\    \/ /___/_______/___/_____/___/_________/___/_____/___/________/
.____| \    \
\____\                      A FUNHOUSE COMMUNICATIONS DIVISON
Port 01: +49 (0)2204 - 61630  19.200     Port 02: +49 (0)2204 / 61499  19.200
Port 03: +49 (0)2204 - 23856  28.800     Port 04: +49 (0)2204 / 61032  28.800
Port 05: +49 (0)2204 - 61033  28.800     Port 06: +49 (0)2204 / 61034  14.400
Port 07: +49 (0)2204 - 61035  16.800     Port 08: +49 (0)2204 / POINT  14.400
Port 09: +49 (0)2204 - 962121 64.000     Port 10: +49 (0)2204 / 962122 64.000

4 Usage

It is very simple to use the expname.library.

If you want to get the name of a special expansion board, you can pass the manufacturer ID and product ID directly to GetExpName(). It is mandatory to provide NULL as a pointer to the ConfigDev parameter if you want to do so...

If you want to get the name of all expansion boards or of a special expansion board, you have to get a ConfigDev structure first. Pass this structure to GetExpName(), and voila... :-)

Additionally, expname.library V2+ offers to query system parameters like OS version, processor or memory size. To do so, you need to call GetSysInfo(), providing a buffer space and the ID code of the information you want to receive (see include file).

It is really that simple!

5 ListExp

ListExp is a small tool (my first one written in C ;-) ) which uses the expname.library. It lists all connected expansion boards, shows their names (if possible), their address and their size.

Try it out to see what expname.library can do. If there are entries which are introduced by a ‘#’ instead of a name, you should send ASAP a description of the missing board to me…:-)

6 boards.library

Recently Torsten Bach released boards.library in AmiNet. Except of the program code, Version 1.0 is a simple copy of the expname.library! Large parts

of the documentation and include files are copied, with the names replaced by Search&Replace.

The program code is faulty. The library returns TRUE if the manufacturer or board is unknown, and FALSE if both were known. This is the opposite of what the Autodocs say.

Additionally, his pragma file is useless. The boards.library provided in this package, is a replacement of the boards.library of

Torsten Bach. Internally, it uses expname.library, ensuring full future compatibelity.

Appendix A Autodoc

NAME GetExpName — get name of expansion board

SYNOPSIS

     Success = GetExpName(ManufName,ProdName,ConfigDev,Manufacturer,
       D0.l                  A0.l     A1.l      A2.l      D0.w
          Product)
            D1.b
     ULONG GetExpName(STRPTR,STRPTR,struct ConfigDev*,UWORD,UBYTE);

FUNCTION Gets the name of the expansion and it’s manufacturer.

INPUTS

ManufName

String to be filled with the manufacturer name. Must be at least 50 chars long (termination included).

ProdName String to be filled with the product name. Must be at least 50 chars long (termination included).

ConfigDev

Pointer to ConfigDev structure (from expansion.library) or NULL.

Manufacturer

ID of the board’s manufacturer, if ConfigDev is NULL.

Product ID of the board’s product number (depends on manufacturer), if ConfigDev is NULL.

RESULT

Success True if both manufacturer and product are known. False if one of them was not known.

NOTE If the manufacturer or the product is not known, the string will be filled with its number. I.e. it is NOT a real fault if this function fails; the strings can be used in any case... If you provide a ConfigDev structure, expname.library may in some cases find out the name of a board even if it is not implemented. This call is guaranteed to preserve all registers except D0.

BUGS There are by far not all existing boards implemented. Please send the manufacturer id and name and the products id and name of all unknown boards to me. My E-Mail:

rkoerber@tfh.dssd.sub.org.

Appendix A: Autodoc 9 SEE ALSO NAME GetSysInfo — get information about the system (V2) SYNOPSIS

Buffer = GetSysInfo(Buffer,Type,Reserved)
D0.l                A0.l  D0.l   D1.l
STRPTR GetSysInfo(STRPTR,ULONG,ULONG);

FUNCTION Gets information about the current system environment. This function is fully DraCo compatible!

INPUTS

Buffer String to be filled with the information string. Must be at least 50 chars

long (including termination).

Type Information type. These types are known in V2:

EXPTYPE_SYSTEM

What system is used? ("Amiga","DraCo")

EXPTYPE_CPU

What kind of CPU is available? (68000,68010,68020,...68060)

EXPTYPE_FPU

What kind of FPU is available? (—,68881,68882,68040,68060)

EXPTYPE_MMU

What kind of MMU is available? (—,68852,68030,68040,68060)

EXPTYPE_OSVER

What OS version is used? (e.g. "V39.106")

EXPTYPE_EXECVER

What exec version is used? (e.g. "V39.47")

EXPTYPE_WBVER

What WorkBench version is used? (e.g. "V39.29", "—" if not available)

EXPTYPE_ROMSIZE

Size of AmigaOS ROM (e.g. "512KB")

EXPTYPE_CHIPSET

What Chipset is available? (e.g. "ECS","AGA","DraCo")

EXPTYPE_GFXSYS

What Graphic Board System is used? (e.g. "CyberGraphX")

EXPTYPE_CHIPRAM

Size of complete Chip RAM (e.g. "~2MB")

EXPTYPE_FASTRAM

Size of complete Fast RAM (e.g. "12MB")

EXPTYPE_RAM

Size of complete System RAM (e.g. "~14MB")

Reserved Reserved for future use, always provide 0 here!

RESULT

Buffer Pointer to the provided buffer if everything went fine, NULL otherwise.

NOTE This call is guaranteed to preserve all registers except D0.

BUGS

SEE ALSO

Appendix B Known bugs

ExpName was written on an Amiga 4000/o3o/882/MMU, Kick 3.0, 14 MB RAM, FastLane 1GB HD, MaestroPro, Toccata, BSC MultiIO, CyberVision 4MB.

THESE BUGS ARE CURRENTLY KNOWN Some of the manufacturers have assigned one ID to two different boards. In this case, expname.library could result a board name that does not match to your hardware. Though it is not my fault, I’ll try a bugfix very soon.

THESE ENFORCER HITS OR MUNGWALL HITS ARE KNOWN None :^)

Appendix C History

V 1.0 • First release

• 4 boards implemented

V 1.1

• 18 boards implemented

V 1.2

• 27 boards implemented

V 1.3 • 28 boards implemented

• Faster search algorithm

• Improved ListExp: shows board size and if board is shut down

V 1.4

• 47 boards implemented

V 1.5 • 76 boards implemented

• ListExp: now it should work correctly if expname.library is not available

V 1.6 • 132 boards implemented

• Added an algorithm that tries to find out the name of the expansion board if no product name is available.

• Added GCC inline include file.

• Revised the documentation

• Translated documentation into Texinfo.

• German version of the documentation is available

V 2.0 • 157 boards implemented

• New function GetSysInfo(): returns information strings about the system.

• ListExp improved to the new features

• GCC inline was faulty.

V 2.1 • 160 boards implemented • Bugfix: ShowConfig crashed after starting V2.0 of this library • GetSysInfo() now returns information about memory size • boards.library replacement written

V 2.2 • 161 boards implemented

• Bugfix: expname crashed on unknown boards or manufacturers

Appendix D Credits

I wish to send my best regards to the following people:

Sven Arke for supporting me with his BBS

Kössi for his plenty of boards, his TexInfo help and his debugging talent!

Thomas Kessler for ShowConfigEnh and his ideas.

Amiga Technologies for the Amiga revival. You’re doing a VERY good job! Keep on...

…and for their contributions (in order of appearance):

Norbert Dimpfl, Markus Pietz, Kai Rode, Martin Wietfeld, Thomas Andersson, Jörn Asmussen, Lutz Legero, Mika Lundell, Jürgen Ofner, Thomas Schürger, ’ALV’, Gunther Mannigel, Heiko Polig, Chris Painter, Patrick Thato, Rask Lambertsen, Jan Rembser, Michael Hartmann, Petter Lindquist, Johan Sundstrom, Ralph Wermke, Alexander Fichtner, Matthias Bethke, Fred Hamilton, Andre Schenk, Daniel Adolfsson, Geert Uytterhoeven, Colin Thompson, Bernd Kösling, Milco Veljanoski, Patrick Hess, Beno Zidaric, Ramiro Garcia

boards.library is from Torsten Bach.

         //
     \\ //   -- Amiga - The Computer for Creative Mind --

Concept Index 16

Concept Index

A

Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Autodoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

B

boards.library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 boards.library: Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

C

Commercial Product . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Contents of the package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Copyright. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Copyright note. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

D

Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Distribution via electronic channels. . . . . . . . . . . . . . . . . . 2

E

E-Mail. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

F

FreeWare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

H

History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

I

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

L

ListExp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

S

Snail Mail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Support Mailbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

T

Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

U

Unknown Boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Table of Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 My Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 ListExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 boards.library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Appendix A Autodoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Appendix B Known bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Appendix C History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Appendix D Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16